Group Functions |
SQL provides some simple functions that can be used to derive information from relations as a result of processing the data held. These functions include:
SQL proporciona algunas funciones simples que pueden ser usados para derivar resultados en función de los datos establecidos en las tablas. Las principales funciones son:
|
Tip |
The processing functions ignored NULL values. Las funciones de proceso por grupo ignoran los valores NULL. |
Tip |
The processing functions support the DISTINCT and ALL operators to provide a better processing control. Las funciones de proceso por grupo soportan los operadores DISTINCT y ALL para proporcionar un mejor control. |
Problem 1 |
circuit_city > Test the following SQL command. Pruebe el siguiente comando de SQL. |
SQL |
SELECT SUM(cost), AVG(cost), MIN(cost), MAX(cost) FROM item; |
Problem 2 |
circuit_city > Write an SQL statement to display the items in order 2002 as shown. Escriba un comando SQL para mostrar los artículos en la orden 2002 como se muestra. |
Problem 3 |
circuit_city > Write an SQL statement to display the price of the cheapest and most expensive item in order 2002 as shown. Escriba un comando SQL para mostrar el artículo más barato y más caro de la orden 2002. |
Problem 4 |
circuit_city > Write an SQL statement to display the name of the cheapest item in order 2002 as shown. Hint: use subqueries, first find the cost of the cheapest item in order 2002, then display the name of the item in order 2002 with this cost. Escriba un comando SQL para mostrar el nombre del artículo más barato en la orden 2002. Sugerencia: use sub-consultas, primero encuentre el costo del artículo más barato en la orden 2002, entonces muestre el nombre del artículo en la orden 2002 con este costo. |
Problem 5 |
circuit_city > Test the following SQL command. Pruebe el siguiente comando de SQL. |
SQL |
SELECT COUNT(*) AS order_2002 FROM ord_det WHERE order_id=2002; |
Problem 6 |
circuit_city > Test the following SQL command. Pruebe el siguiente comando de SQL. |
SQL |
SELECT COUNT(order_id) AS order_c, COUNT(ALL order_id) AS ord_all, COUNT(DISTINCT order_id) AS ord_dist FROM ord_det; |
Problem 7 |
city_bank > Write an SQL statement, without using sub-queries, to display the sum of all balances for all accounts held by the customer 'Weiss, Matthew' as shown. Escriba un comando SQL sin usar sub-consultas para mostrar la suma de los balances de todas las cuentas que tiene el cliente 'Weiss, Matthew' |
Problem 8 |
city_bank > Write an SQL statement, using sub-queries, to display the sum of all balances for all the accounts held by the customer 'Weiss, Matthew' as shown. Escriba un comando SQL usando sub-consultas para mostrar la suma de los balances de las cuentas que tiene el cliente 'Weiss, Matthew' como se muestra. |
Problem 9 |
city_bank > Write an SQL statement to display the name of the client(s) with the highest balance. Hint: use subqueries, first find the highest balance, second find the account_id's with this balance (the highest balance), and finally, find the client names who have these account_id's. Alternatively, you can combine joins and subqueries to get the same result. Escriba un comando SQL para listar el nombre de el (los) cliente(s) que tiene(n) el balance más alto. Sugerencia: use sub-consultas, primero encuentre el balance más alto, segundo encuentre los account_id con este balance (el más alto), y finalmente, encuentre el nombre de los clientes que tienes estas account_id. Alternativamente, usted puede combinar joins y subconsultas para obtener el mismo resultado. |
GROUP BY |
It displays summary information for groups and for subgroups. The column used in the GROUP BY statement MUST be included in the SELECT part of the query. Permite mostrar un resumen informático por grupos o sub-grupos. La columna usada en el comando GROUP BY debe ser incluida en la parte SELECT de la consulta. |
Problem 10 |
circuit_city > Test the following SQL command. Note that order_id appears in the SELECT part as well as in the GROUP by part of the query. Pruebe el siguiente comando de SQL. Observe que order_id aparece en la parte del SELECT cómo también en la parte del GROUP BY de la consulta. |
SQL |
SELECT order_id, SUM(item_count) AS sum_ic, AVG(item_count) AS avg_ic, MIN(item_count) AS min_ic, MAX(item_count) AS max_ic FROM ord_det GROUP BY order_id; |
Problem 11 |
circuit_city > Write an SQL statement to display the number of different items in each order as shown. Escriba un comando SQL para mostrar el número de artículos diferentes en cada orden como se muestra. |
Problem 12 |
circuit_city > Write an SQL statement to display the total cost of each order as shown. Escriba un comando SQL para mostrar el costo total de cada orden como se muestra. |
HAVING |
The statement WHERE limits the number of rows to be displayed by a SELECT statement. On the other hand, HAVING limits the number of groups to be displayed following GROUP BY. Therefore, you can use HAVING when you are using GROUP BY. Therefore, I cannot use HAVING, if the query does not have a GROUP BY. El comando WHERE limita el número de renglones a ser mostrados en un comando SELECT. Por otra parte, HAVING limita el número de grupos a ser mostrados en un comando GROUP BY. Por lo tanto, usted puede usar HAVING cuando usted usa GROUP BY. Por lo tanto, yo no puedo usar HAVING, si la consulta no tiene un GROUP BY. |
Problem 13 |
circuit_city > Test the following SQL command. Pruebe el siguiente comando de SQL. |
SQL |
SELECT order_id, COUNT(order_id) AS diff_item FROM ord_det GROUP BY order_id HAVING order_id>2001; |
Tip |
You can use the OR, AND, etc., operators in a HAVING clause to limit the number of groups to be displayed following GROUP BY. Observe that you must use the same column in GROUP BY and in HAVING. Es posible usar los operadores OR, AND, etc., con el comando HAVING para limitar los datos generados por GROUP BY. Observe que usted debe usar la misma columna en GROUP BY y en HAVING. |
Problem 14 |
circuit_city > Write an SQL statement to display the total cost of orders 2000 and 2005. Escriba un comando SQL para mostrar el costo total de las órdenes 2000 y 2005. |
Problem 15 |
city bank > Write an SQL statement to display the total balance for all the accounts each client has. Escriba un comando SQL para mostrar el balance de todas las cuentas que cada cliente tiene. |
Problem 16 |
city bank > Write an SQL statement to display summary information about the savings and checking accounts as shown. Escriba un comando SQL para mostrar un resumen informativo de las cuentas de ahorros y cheques como se muestra. |
Problem 17 |
city bank > Write an SQL statement to display summary information for each branch as shown. Escriba un comando SQL para mostrar un resumen informativo de las sucursales como se muestra. |
Problem 18 |
city bank > Write an SQL statement to display the number of accounts each customer has. Escriba un comando SQL para mostrar el número de cuentas que cada cliente tiene. |
Tip |
If you include several columns in a GROUP BY query, it is necessary to either:
Si usted incluye varias columnas en una consulta que use GROUP BY, es necesario:
|
Incorrect.sql |
SELECT first_name, last_name, AVG(weight) FROM patient GROUP BY last_name; |
Correct.sql |
SELECT last_name, AVG(weight) FROM patient GROUP BY last_name; |